开始之前:
1. 识别人脸输出相关数据
在人脸识别功能下,当人脸出现在HUSKYLENS 2 屏幕中时,可以被检测和框出,我们可以获取HUSKYLENS 2 画面中离十字光标最近的人脸的相关数据并在串口打印出来,可以读取的人脸数据有:人脸ID、人脸名称、宽度、高度以及人脸中心点的X坐标位置和Y坐标位置。
I2C示例程序如下。
UART示例程序如下。
后续示例代码将仅提供I2C模式代码,如需使用UART模式,请仿照下图中的初始化方式积木即可。
在Mind+中点击上传到设备,等待程序上传完成后。通过触屏,进入HUSKYLENS 2 的人脸识别功能。
将HUSKYLENS 2 的摄像头对准人脸,在Mind+中打开串口,观察输出结果。
运行结果:如下,对于未学习过的人脸默认输出ID为0。
可以对准一张学习过的人脸,如何学习人脸详细操作请看:人脸识别功能说明
运行结果:如下,对于已学习过的人脸输出ID与HUSKYLENS 2 屏幕显示的ID保持一致。
2. 统计人脸数量输出指定人脸的数据
当画面中出现多张人脸时,可以使用以下示例程序统计画面中的人脸数量,获取指定ID的人脸相关数据。
示例程序如下
运行结果:如下图,运行程序,串口打印当前画面中的人脸数量。当ID为1的人脸出现在画面中就打印输出人脸ID1的相关数据。
运行结果:如下图,运行程序,如果未出现ID为1的人脸,则串口只输出当前人脸数量。
3. 人脸识别积木说明
| 积木 | 说明 |
|---|---|
|
HUSKYLENS 2 的人脸识别功能下,用于获取一次人脸识别的数据结果。 |
|
判断当前画面中是否存在人脸。 |
|
获取离屏幕十字光标最近的一个人脸的相关数据,包括人脸的ID、自定义的人脸的名称、中心点X坐标、中心点Y坐标、宽度、高度。 |
|
获取屏幕中所有检测到的人脸的数量,包括未学习的和已学习的人脸。 |
|
当出现多个标签时,获取某一指定人脸的相关数据。 |
|
判断指定ID的人脸是否存在在画面中。未学习的ID统一为0,已学习的ID按学习顺序排序。 |
|
获取当前画面中指定ID的人脸数量。 |
|
当出现多个人脸时,获取某一指定人脸的相关数据。 |
|
当出现多个同一ID的人脸时,获取某一指定人脸的相关数据。 |
|
获取HUSKYLENS 2已学习的人脸的ID总数量,例如当HUSKYLENS 2学习过3种人脸,ID分别为ID1、ID2、ID3,无论这3张人脸是否出现在画面中,使用此积木则输出结果为3 |